#include "uart.h"

//TI发送中断请求标志位\RI接收中断请求标志位
//-------------------------------------------------UART
uchar xdata puc_Uart_Send_String[20];  //串口发送缓冲数组
uchar uc_Uart_Rece_num;       //串口接收数据个数
uchar xdata puc_Uart_Rece_String[20];  //串口接收缓冲数组

void UartInit(void)		//9600bps@12.000MHz
{
	SCON = 0x50;		//8位数据,可变波特率
	AUXR |= 0x40;		//定时器时钟1T模式
	AUXR &= 0xFE;		//串口1选择定时器1为波特率发生器
	TMOD &= 0x0F;		//设置定时器模式
	TL1 = 0xC7;		//设置定时初始值
	TH1 = 0xFE;		//设置定时初始值
	ET1 = 0;		//禁止定时器1中断
	TR1 = 1;		//定时器1开始计时
	ES = 1;
}

void Uart_SendByte(unsigned char Byte)  //通过串口发送一个字节
{
	SBUF = Byte;     //将一个字节写入SBUF，开启发送
	while(TI == 0);  //等待发送完成
	TI = 0;
}

void Uart_SendString(unsigned char *String)  //通过串口一个字符串
{
    while(*String != '\0')  //检测字符串结束标志
    {
	  Uart_SendByte(*String);//取 存储在 指针变量String上 的值给SBUF
      String++;
    }
}

/*
//UART 中断服务程序
void Uart_ISR(void) interrupt 4
{
  if(RI == 1) //接收完一个字节数据
	{
	  RI = 0;  //清除RI位
	  puc_Uart_Rece_String[uc_Uart_Rece_num++] = SBUF;  //保存串口数据
	}
}
*/

/* 串口发送接收模板
if (uc_uart == 1)	//串口发送
{
	uc_uart = 0;
	Uart_SendString("Time is up!\r\n");
}
		
if(uc_Uart_Rece_num == 2) {
	if ((puc_Uart_Rece_String[0] == '1') && (puc_Uart_Rece_String[1] == '2')) { 
		Uart_SendString("Time is up!\r\n");
		uc_Uart_Rece_num = 0;
	}
}
*/


//void Uart_Proc(void)
//{
//	if(uc_Uart_Rece_num > 1)
//	{
//	  if( (puc_Uart_Rece_String[uc_Uart_Rece_num-1] == '\n') && (puc_Uart_Rece_String[uc_Uart_Rece_num-2] == '\r') )
//		{
//           if(uc_Uart_Rece_num == 4)
//			{
//				if( (puc_Uart_Rece_String[0] == 'S') && (puc_Uart_Rece_String[1] == 'T'))
//				{
//					uc_Uart_Rece_num = 0; //清零
//				  Uart_SendString("ST\r\n");
//				}			  
//			}
//		    else if(uc_Uart_Rece_num == 6)
//			{
//				uc_Uart_Rece_num = 0; //清零
//			    if( (puc_Uart_Rece_String[0] == 'P') && (puc_Uart_Rece_String[1] == 'A') && (puc_Uart_Rece_String[2] == 'R') && (puc_Uart_Rece_String[1] == 'A'))
//			     {
//			       Uart_SendString("PARA\r\n");
//			     }
//			    else 
//			    {
//			      Uart_SendString("ERROR_1\r\n");
//			    }
//		    }
//			else 
//			{
//				uc_Uart_Rece_num = 0; //清零
//				Uart_SendString("ERROR_2\r\n");
//			}				
//		}
//	
//	}
//  
//}






